package models.vo {

  import org.restfulx.collections.ModelsCollection;
  import org.restfulx.models.RxModel;

  [Resource(name="analises")]

  [Bindable]
  public class Analise extends RxModel {
    public static const LABEL:String = "abertura";

    public var enquadramento:String = "";

    public var capacidadeRealProducao:String = "";

    public var investimentos:String = "";

    public var depositos:String = "";

    public var informacoesComplementares:String = "";

    public var parecer:String = "";

    public var condicoesAtendidas:String = "";

    public var ano:int = 0;

    public var sequencial:int = 0;

    public var dataRodape:Date;

    [BelongsTo]
    public var pleito:Pleito;

    [BelongsTo]
    public var analista_1:User;

    [BelongsTo]
    public var analista_2:User;

    [BelongsTo]
    public var setorEconomico:SetorEconomico;

    [HasOne]
    public var vistoria:Vistoria;

    [HasMany]
    public var exigencias:ModelsCollection;

    //////////////////////////////////////////////////////////////////////////////////////////////////////

    public function Analise() {
      super(LABEL);
    }

    //////////////////////////////////////////////////////////////////////////////////////////////////////

    public function getAnalista1():User {
      if (!analista_1)
        analista_1 = new User();

      return analista_1;
    }

    //////////////////////////////////////////////////////////////////////////////////////////////////////

    public function getAnalista2():User {
      if (!analista_2)
        analista_2 = new User();

      return analista_2;
    }

    //////////////////////////////////////////////////////////////////////////////////////////////////////

    public function getVistoria():Vistoria {
      if (!vistoria)
        vistoria = new Vistoria();

      return vistoria;
    }

    //////////////////////////////////////////////////////////////////////////////////////////////////////

    public function getExigencias():ModelsCollection {
      if (!exigencias)
        exigencias = new ModelsCollection();
      return exigencias;
    }

    //////////////////////////////////////////////////////////////////////////////////////////////////////

    public function temComoAnalista(user:User):Boolean {
      return ((getAnalista1().id == user.id) || (getAnalista2().id == user.id));
    }

  }
}
